package Text28;

import java.util.*;

public class Main {
    //    输入包含多组测试数据。每组测试数据占一行，包含两个整数 a和 b。
//    当读入一行为 0 0 时，表示输入终止，且该行不作处理。
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(true){
            int a=scanner.nextInt();
            int b=scanner.nextInt();
            if(a==0&&b==0){
                break;
            }
            if(a>b){
                int t=a;a=b;b=t;
            }
            for (int i = 0; i < 10; i++) {
                System.out.print(count(b,i)-count(a-1,i)+" ");
            }
            System.out.println();
        }
    }

    private static int count(int num, int x) {
        ArrayList<Integer> arrayList = new ArrayList<>();
        while(num>0){
            arrayList.add(num%10);
            num/=10;
        }
        int n=arrayList.size();
        int ret=0;
        for (int i =n-1-(x==0?1:0) ; i>=0 ; i--) {
            //0-abc-1=>abc*power10(i);
            if(i<n-1){
                ret+=get(arrayList , n - 1 , i + 1) * power10(i);
                //1-abc;
                if(x==0){
                    ret-=power10(i);
                }
            }
            //abc=>0-efg
            if(arrayList.get(i)==x){
                ret+=get(arrayList,i-1,0)+1;
            }else if (arrayList.get(i)>x){
                ret+=power10(i);
            }
        }
        return ret;
    }

    private static int power10(int x) {
        int ret=1;
        while(x!=0){
            ret*=10;
            x--;
        }
        return ret;
    }

    private static int get(ArrayList<Integer> arrayList, int x, int y) {
        int ret=0;
        for (int i = x; i>=y ; i--) {
            ret=ret*10+arrayList.get(i);
        }
        return ret;
    }
}
